﻿<?xml version="1.0" encoding="utf-8" ?>
<contract>
  
  <!-- ===== BASE SERVICE ===== -->
  
  <service name="BaseService"
       xmlNamespace="http://services.bigbank.com/Base/V1"
       clrNamespace="BigBank.Contracts.Base.V1">
  </service>

  <!-- ===== PLATFORM SERVICES ===== -->
  
  <service name="PlatformService" extends="BaseService"
     xmlNamespace="http://services.bigbank.com/Platform/V1"
     clrNamespace="BigBank.Contracts.Platform.V1">
  </service>
  
  <service name="AuthorizationService" extends="PlatformService"
     xmlNamespace="http://services.bigbank.com/Authorization/V1"
     clrNamespace="BigBank.Contracts.Authorization.V1">
    <operations>
      <operation name="AuthorizeRequest" />
    </operations>
  </service>

  <service name="LoggingService" extends="PlatformService"
     xmlNamespace="http://services.bigbank.com/Logging/V1"
     clrNamespace="BigBank.Contracts.Logging.V1">
    <operations>
      <operation name="LogMessage" />
    </operations>
  </service>
  
  <!-- ===== INTEGRATION SERVICES ===== -->
  
  <service name="IntegrationService" extends="BaseService"
     xmlNamespace="http://services.bigbank.com/Integration/V1"
     clrNamespace="BigBank.Contracts.Integration.V1">
  </service>

  <service name="UserService" extends="IntegrationService"
       xmlNamespace="http://services.bigbank.com/User/V1"
       clrNamespace="BigBank.Contracts.User.V1">
    <operations>
      <operation name="AuthenticateUser" />
      <operation name="GetUserProfile" />      
    </operations>
  </service>
  
  <service name="BankingService" extends="IntegrationService"
         xmlNamespace="http://services.bigbank.com/Banking/V1"
         clrNamespace="BigBank.Contracts.Banking.V1">
    <operations>
      <operation name="GetAccounts" />
      <operation name="ProcessTransfer" />
      <operation name="SearchHistory" />
    </operations>
  </service>

  <service name="BillPaymentService" extends="IntegrationService"
       xmlNamespace="http://services.bigbank.com/BillPayment/V1"
       clrNamespace="BigBank.Contracts.BillPayment.V1">
    <operations>
      <operation name="GetPayees" />
      <operation name="ProcessPayment" />
      <operation name="SearchPaymentHistory" />
      <operation name="AddPayee" />
    </operations>
  </service>
  
</contract>